# ##############################
from chiori import Plugin, Ui
from libs.vk import get_ids, get_profiles
import time
# ##############################

p = Plugin(name='vk: account', sp=['vk'], backend='vk_cli', desc='управление аккаунтом вк')

# чёрный список
# =============

@p.command('ban', usage='[targets] заблокировать пользователей')
async def ban(event, ctx):
	targets = await get_ids(event, ctx)
	profiles = await get_profiles(event, ctx, targets)
	u = Ui()

	u.form(f'добавление участников в чёрный список ({len(targets)})')
	for x in targets:
		p.log(f'блокировка: {profiles[x]["name"]}')
		res = await ctx.request('account.ban', owner_id=x)
		time.sleep(0.1)


@p.command('unban', 'uban', usage='[targets] разблокировать пользователей')
async def unban(event, ctx):
	targets = await get_ids(event, ctx)
	profiles = await get_profiles(event, ctx, targets)
	u = Ui()

	u.form(f'исключение участников из чёрный список ({len(targets)})')
	for x in targets:
		p.log(f'разблокировка: {profiles[x]["name"]}')
		res = await ctx.request('account.unban', owner_id=x)
		time.sleep(0.1)

@p.command('banlist', 'bl', usage='список заблокированных пользоватеклей')
async def banlist(event, ctx):
	u = Ui()
	res = await ctx.request('account.getBanned')

	if not res["error"]:
		profiles = await get_profiles(event, ctx, res["response"]["items"])

		text = f'пользователи в ЧС: ({len(profiles)})'

		for k, v in profiles.items():
			text += f'\n-- [{u.blue}{k}{u.reset}] {u.lred}{v["name"]}{u.reset}'

		u.form(text)

# разрешения приложения
# =====================

@p.command('app', 'perms', 'p', usage='посмотреть список прав доступа')
async def getAppPermissions(event, ctx):
	u = Ui()
	res = await ctx.request('account.getAppPermissions')

	perms = res["response"]

	print(bin(1024))
	u.form(res)
